package com.company;

import java.io.*;
import java.util.Date;

public class Test对象流 {

    public static void main(String[] args) throws IOException {
       //写出
        ByteArrayOutputStream baos =new ByteArrayOutputStream();//自身存在一个缓冲区。节点流
        ObjectOutputStream oos =new ObjectOutputStream(baos);//将对象写入节点流中。
        //操作数据类型+数据
        oos.writeUTF("编码心酸泪");
        oos.writeInt(18);
        oos.writeBoolean(false);
        oos.writeChar('a');
        //对象
        oos.writeObject("谁解其中味");
        oos.writeObject(new Date());
        oos.flush();
        byte[] datas = baos.toByteArray();  //字节数组流的特殊方法。
            System.out.println(baos.size());
            System.out.println(datas.length);
        //读取
        ObjectInputStream dis=new ObjectInputStream(new ByteArrayInputStream(datas));//将datas中的数据生成一个新的字节数组。
        //顺序与写出一致
        String msg=dis.readUTF();
        int age = dis.readInt();
        boolean flag = dis.readBoolean();
        char ch = dis.readChar();
            System.out.println(flag);
        //**注意：同种类型数据中即使不用这些数据，也要将其读出来！**

    }
}
